/**
 * 项目名：	Rumba Plan
 * 
 * 版权所有(C)，上海海鼎信息工程股份有限公司，2007，所有权利保留。
 * 
 * 文件名：	IUpgradeSearcher.java
 * 模块说明：	
 * 修改历史：
 * Dec 7, 2007 - zhangyanbo - 创建。
 */
package com.hd123.rumba.upgrade;

import java.util.List;

import com.hd123.rumba.exception.BusinessException;

/**
 * 版本搜索 | 接口类
 * <p>
 * 提供了进行自适应的版本搜索的接口，以期寻找到一条最优的升级路径来进行系统升级。 <br>
 * 
 * 搜索算法： <br>
 * 1、获得在配置文件中的注册的Cartridge列表。<br>
 * 2、根据Cartridge之间的依赖关系分析构件包的升级顺序。<br>
 * 3、对每个Cartridge，调用getUpgradeClasses接口来获得所有可能的升级类，并采用最短路径搜索算法找到需要运行的升级类。
 * 
 * @author zhangyanbo
 * 
 */
public interface IUpgradeSearcher {

  /**
   * 搜索版本升级包序列。
   * 
   * @return 版本升级类列表。
   * @throws BusinessException
   */
  public List<Upgrade> search() throws BusinessException;
}
